package src.A_JavaBase;

import java.util.Arrays;

public class Demo08 {
    public static void main(String[] args) {
        //打印
        int[] a = {6,2,10,4,8,2,2,2};
        System.out.println(a); //u码
        System.out.println(Arrays.toString(a));

        //排序升序，降序自己写
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));

        //赋值，给下标[2，5)赋值2,其他赋值1
        int[] b = new int[6];
        Arrays.fill(b,1);
        Arrays.fill(b,2,5,2);
        System.out.println(Arrays.toString(b));

        //比较数组元素是否相等
        System.out.println(Arrays.equals(a,new int[]{6,2,10,4,8,2,2,2}));

        /*
        * 使用二分查找法找到指定值的下标，传数组，范围(不传默认为全范围)，值，返回下标
        * 使用前提：1、已经排序，2、无重复元素
        * 因为底层实现用的逻辑右移1位，重复元素的话会导致只获取一个下标
        * */
        //数组必须经过排序才可以使用此方法，否则返回下标显示不准。
        System.out.println(Arrays.binarySearch(a,2));
        System.out.println(Arrays.binarySearch(a,1,6,2));
        //拓展：逻辑右移1位
        System.out.println("=====逻辑右移1位=====");
        System.out.println(1 >>> 1);
        System.out.println(3 >>> 1);
        System.out.println(9 >>> 1);
    }
}
